<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <script>
        //4.数组去重方法
    let arr = [12, 24, 37, 37, 24, 49, 49, 55, 55]  //去重

        // 第一种方法  es6新办法 new Set()
        //   let arr2=new Set(arr) //先去重，得到是对象，在转成数组
        //  console.log([...arr2]); //通过展开符也可以变成数组


        // let oneArr = Array.from(new Set(arr))
        // console.log(oneArr);

        // 第二种办法   filter indexOf
        let twoArr = arr.filter((item, i) => {
            console.log(arr.indexOf(item),i); //判断第一次查找的位置是否跟当前索引相等
            return arr.indexOf(item) == i
        });
        console.log(twoArr);

        // 第三种 forEach indexOf  注意forEach没有返回值
        let sanArr = []
        arr.forEach((item, i) => {
            if (arr.indexOf(item) == i) {
                sanArr.push(item)
            }
        })
        console.log(sanArr);  

      //6.2统计字符串中出现最多的字母与次数
        var str = "abcdaaaaaaaa";
            //1.利用json键重复自动覆盖特点,去重
            var json={}
            for (var i = 0; i < str.length; i++) {
                var key=str[i]
                //判断json中值是否存在,如果存在就累加，不存在就赋初识值为1
                if(json[key]){
                    json[key]++
                }
                else{
                    json[key]=1;
                }
            //    console.log(json);
            }
            console.log(json)  //{a: 9, b: 1, c: 1, d: 1}

            //2.页面中输出,最多的字母与次数
            var max = 0;
            var key = ""
            for(var i in json){
                if(max < json[i]){
                    max = json[i]
                    key = i
                }

            }
            console.log(key,max)  


            //方法2-使用reduce()方法统计数组中字符串出现次数
            //数组归并方法  reduce(function(prev,cur,index,array){},传递给函数的初始值[可选])
        /*  let names = ['a', 'b', 'a', 'c', 'a'];
            let json2=names.reduce((prev,next)=>{
                console.log(prev) //{},初始化prev为对象
                if(next in prev){
                    prev[next]++
                }
                else{
                    prev[next]=1
                }
                return prev
            },{})
            console.log(json2) //{a: 3, b: 1, c: 1} */

        //7. 编写通用方法,把URL参数解析为一个对象，如：var url = “http://witmax.cn/index.php?key0=0&key1=1&key2=2″;    返回数据{key0: "0", key1: "1", key2: "2"}

     /*    function toJson(hash){
                hash=hash.split('?');
                var arr=hash[1].split('&');
                var json={};
                for(var i=0;i<arr.length;i++){
                    var arr2=arr[i].split('=');
                    var key=arr2[0];
                    var value=arr2[1];
                    json[key]=value;
                }
                return json;
            }
        var url = "http://witmax.cn/index.php?key0=0&key1=1&key2=2";
        console.log(toJson(url));  // {key0: "0", key1: "1", key2: "2"} */


    </script>
</body>

</html>